<?php
/**
 * ============================================================================
 * 版权所有 2017-2018 tpframe工作室，并保留所有权利。
 * @link http://www.tpframe.com/
 * @copyright Copyright (c) 2017 TPFrame Software LLC
 * ----------------------------------------------------------------------------
 * 这不是一个自由软件！未经本公司授权您只能在不用于商业目的的前提下对程序代码进行修改和使用；
 * 不允许对程序代码以任何形式任何目的的再发布。
 */
namespace addon\payment;

use app\common\controller\AddonBase;

use app\common\dao\AddonInterface;

use tpfcore\Core;

use think\Db;

class Payment extends AddonBase implements AddonInterface
{
    private $addonName="支付模块";
    /**
     * 实现钩子
     * 通过name传递的值来调用不同的支付ui
     */
    public function pay($param = [])
    {
        $this->addonTemplate(':pay',[
            "name"=>$param['name'],
        ]);
    }
    /**
     * 插件安装
     */
    public function addonInstall()
    {
        try{

            $this->addonInstallBefore();

            return [RESULT_SUCCESS, $this->addonName.'安装成功'];

        }catch(\Exception $e){

            throw new \Exception($e->getMessage());

        }
        
    }
    
    /**
     * 插件卸载
     */
    public function addonUninstall()
    {   
        try{

            $this->addonUninstallBefore();

            return [RESULT_SUCCESS, $this->addonName.'卸载成功'];

        }catch(\Exception $e){
            throw new \Exception($e->getMessage());
        }
        
        
    }
    
    /**
     * 插件基本信息
     */
    public function addonInfo()
    {
        return [
            'name' => 'payment', 
            'title' => $this->addonName, 
            'describe' => '在线支付模块', 
            'author' => 'yaosean', 
            'version' => '2.0' ,
            'require'=>'>=3.0',  
            'depend'=>'mall',
            'type'=>'behavior_module',
            "config" => false
        ];
    }
    
    /**
     * 插件配置信息
     */
    public function addonConfig()
    {
        return [];
    }

    /**
     * 插件安装前的一些操作
     */
    public function addonInstallBefore(){
        // 安装前要进行的一些sql处理
        try{
            $result=Db::query("SELECT id from `".DB_PREFIX."menu` WHERE name='插件模块'");

            $parentid=$result[0]['id'];
            
            Db::execute("INSERT INTO `".DB_PREFIX."menu` (`name`, `module`, `controller`, `action`, `type`, `urlext`, `display`, `remark`, `icon`, `sort`, `parentid`) VALUES ('支付设置', 'payment', '', '', '1', '', '1', '', 'rmb ', '0', '$parentid');");

            $parentid=Db::getLastInsID();

            Db::execute("INSERT INTO `".DB_PREFIX."menu` (`name`, `module`, `controller`, `action`, `type`, `urlext`, `display`, `remark`, `icon`, `sort`, `parentid`) VALUES ('支付管理', 'payment', 'payment', 'index', '1', '', '1', '', 'th', '0', '$parentid');");

        }catch(\Exception $e){
            throw new \Exception("sql 语句执行错误".$e->getMessage());
        }
        
    }
    /**
     * 卸载前的一些操作
     */
    public function addonUninstallBefore(){
        try{
            $result=Db::query("SELECT id from `".DB_PREFIX."menu` WHERE name='支付设置'");
            if(!empty($result)){
                $parentid=$result[0]['id'];
                Db::execute("DELETE FROM `".DB_PREFIX."menu` WHERE id=$parentid OR parentid=$parentid");
            }
        }catch(\Exception $e){
            throw new \Exception("sql 语句执行错误".$e->getMessage());
        }
    }
}
